package main

import "fmt"

func appendList() {
	a := []int{2, 3, 1, 3, 5, 7}
	b := []int{4, 6}
	// 将切片 b 的元素追加到切片 a 之后:
	a = append(a, b...)

	// 复制切片 a 的元素到新的切片 c 上
	c := make([]int, 0, len(a))
	c = append(c, a...)
	// copy(c, a)

	// 删除位于索引 i 的元素
	i := 2
	a = append(a[:i], a[i+1:]...)
	// 切除切片 a 中从索引 i 至 j 位置的元素
	j := 4
	a = append(a[:i], a[j+1:]...)
	// 为切片 a 扩展 j 个元素长度
	a = append(a, make([]int, 4)...)
	// 在索引 i 的位置插入元素 x
	x := 99
	a = append(a[:i], append([]int{x}, a[i:]...)...)
	// 在索引 i 的位置插入长度为 j 的新切片
	a = append(a[:i], append(make([]int, j), a[i:]...)...)
	// 在索引 i 的位置插入切片 b 的所有元素
	a = append(a[:i], append(b, a[i:]...)...)
	// 取出位于切片 a 最末尾的元素 x
	x, a = a[len(a)-1], a[:len(a)-1]
	// 将元素 x 追加到切片 a
	a = append(a, x)

}

func main() {
	sli := []int{9, 7, 6, 5, 3, 1}
	// 移除2到4位元素
	fmt.Println("new slice: ", append(sli[:2], sli[4+1:]...))
}
